openpyxl styles 模块

您所在的位置:网站首页 openpyxl 保存 列宽变了 openpyxl styles 模块

openpyxl styles 模块

2024-07-09 23:05| 来源: 网络整理| 查看: 265

styles 模块说明 styles 模块提供了许多用于设置和控制单元格样式的类和方法。这些类和方法可以帮助你定制 Excel 工作表中单元格的外观,包括字体样式、边框、填充颜色等。 styles 模块主要功能 Font(字体):Font 类用于定义和修改单元格中文本的字体样式,如字体名称、大小、颜色、粗体、斜体等。 PatternFill(填充颜色):PatternFill 类允许设置单元格的填充颜色和填充样式。 Border(边框):Border 类用于定义单元格的边框样式,包括边框粗细、颜色和线条样式。 Alignment(对齐):Alignment 类允许控制单元格中内容的对齐方式,包括水平对齐(左对齐、居中、右对齐)和垂直对齐。 NamedStyle(命名样式):NamedStyle 类用于创建自定义的命名样式,将多个单元格样式属性组合在一起。 styles 模块导入 from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border Font Font(): 通过 Font 类,可以控制字体的名称、大小、颜色、样式(粗体、斜体等)等属性,从而定制单元格中文本的外观。 Font() 参数: name="Calibri":设置字体为 Calibri。 sz=11:设置字号为 11。 family=2:指定字体族,2 代表无衬线字体。 b=False:设置粗体为 False,即不启用粗体效果。 i=False:设置斜体为 False,即不启用斜体效果。 color=Color(theme=1):设置颜色为主题颜色,并选择第一个主题颜色。 scheme="minor":指定该字体样式属于次要文本方案。 :字符集。 u=None:下划线样式。 strike=None:删除线效果。 strikethrough=None:是否有删除线。 vertAlign=None:垂直对齐方式。 outline=None:外框。 shadow=None:阴影。 condense=None:是否压缩。 extend=None:延伸效果。 from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border # 创建一个新的Excel工作簿 wb = Workbook() # 获取第一个工作表 worksheet = wb.active # 设置单元格的值 cell_A1 = worksheet.cell(row=1, column=1, value=30) # 设置第一行第一列的值为 30 # 定义字体样式 font_style = Font(name='Arial', # 字体名称 size=12, # 字体大小 bold=True, # 加粗 italic=False, # 斜体 color='FF0000', # 字体颜色(红色) underline='single') # 下划线样式(单线) # 设置单元格的样式 cell_A1.font = font_style # 保存工作簿到指定的文件名 wb.save("execl_test.xlsx") # 关闭工作簿 wb.close()

PatternFill  PatternFill(填充颜色):PatternFill 类允许设置单元格的填充颜色和填充样式。 PatternFill 参数: patternType=None:填充的图案类型。 fgColor=Color():前景色,即填充的主要颜色。 bgColor=Color():背景色,即填充的背景颜色。 fill_type=None:填充类型,例如 'solid' 纯色填充。 start_color=None:渐变填充的起始颜色。 end_color=None:渐变填充的结束颜色。 from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color # 创建一个新的Excel工作簿 wb = Workbook() # 获取第一个工作表 worksheet = wb.active # 设置单元格的值 cell_A1 = worksheet.cell(row=1, column=1, value=30) # 设置第一行第一列的值为 30 # 定义填充样式 pattern_fill = PatternFill(patternType='solid', fgColor=Color(rgb="00FF00")) # 这里使用绿色作为填充颜色 # 设置单元格的样式 cell_A1.fill = pattern_fill # 保存工作簿到指定的文件名 wb.save("execl_test.xlsx") # 关闭工作簿 wb.close()

Border Border(边框):Border 类用于定义单元格的边框样式,包括边框粗细、颜色和线条样式。 Border 参数: left:左边框样式。 right:右边框样式。 top:顶部边框样式。 bottom:底部边框样式。 diagonal:对角线边框样式。 diagonal_direction:对角线方向。 vertical:垂直边框样式。 horizontal:水平边框样式。 diagonalUp:是否使用从左上到右下的对角线。 diagonalDown:是否使用从左下到右上的对角线。 outline:是否应用外框。 start:起始边框样式。 end:结束边框样式。 from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color, Side # 创建一个新的Excel工作簿 wb = Workbook() # 获取第一个工作表 worksheet = wb.active # 设置单元格的值 cell_A1 = worksheet.cell(row=1, column=1, value=30) # 设置第一行第一列的值为 30 # 创建边框样式 thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin')) # # 应用边框样式到单元格范围 cell_A1.border = thin_border # 设置单元格A1的边框样式 # 选定单元格范围B1:C3 cell_range = worksheet["B1:C3"] for row in cell_range: for cell in row: cell.border = thin_border # 设置单元格范围B1:C3的边框样式 # 保存工作簿到指定的文件名 wb.save("execl_test.xlsx") # 关闭工作簿 wb.close()

Alignment Alignment(对齐):Alignment 类允许控制单元格中内容的对齐方式,包括水平对齐(左对齐、居中、右对齐)和垂直对齐。 Alignment 参数: horizontal:文本在单元格内的水平对齐方式。 vertical:文本在单元格内的垂直对齐方式。 textRotation:文本旋转角度。 wrapText:是否自动换行。 shrinkToFit:是否缩小字体以适应。 indent:文本缩进级别。 relativeIndent:相对缩进级别。 justifyLastLine:是否两端对齐最后一行文本。 readingOrder:文本的读取顺序。 text_rotation:文本旋转角度。 wrap_text:是否自动换行。 shrink_to_fit:是否缩小字体以适应。 mergeCell:是否合并单元格内的文本。 from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color, Side # 创建一个新的Excel工作簿 wb = Workbook() # 获取第一个工作表 worksheet = wb.active # 设置单元格的值 cell_A1 = worksheet.cell(row=1, column=1, value="This is a long text that will wrap") # 创建一个 Alignment 对象 alignment = Alignment(horizontal='center', # 水平居中 vertical='center', # 垂直居中 textRotation=45, # 文本旋转角度 wrapText=True, # 自动换行 shrinkToFit=True, # 缩小字体以适应 indent=2) # 缩进两个字符 # 将对齐样式应用于单元格 A1 cell_A1.alignment = alignment # 调整列宽和行高以适应自动换行 default_row_height = worksheet.row_dimensions[1].height worksheet.row_dimensions[1].height = 30 # 设置行高 worksheet.column_dimensions['A'].width = 30 # 设置列宽 # 保存工作簿到指定的文件名 wb.save("execl_test.xlsx") # 关闭工作簿 wb.close()

NamedStyle NamedStyle(命名样式):NamedStyle 类用于创建自定义的命名样式,将多个单元格样式属性组合在一起。 NamedStyle 参数: name:命名样式的名称。 唯一的名称。 font:字体样式,可以通过 openpyxl.styles.Font 类定义。 fill:填充样式,可以通过 openpyxl.styles.PatternFill 类定义。 border:边框样式,可以通过 openpyxl.styles.Border 类定义。 alignment:对齐样式,可以通过 openpyxl.styles.Alignment 类定义。 number_format:数字格式。 protection:保护设置,可以通过 openpyxl.styles.Protection 类定义。 builtinId:内置 ID。 hidden:是否隐藏。 xfId:扩展字段 ID from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, NamedStyle, Alignment, Border, Color, Protection # 创建一个新的Excel工作簿 wb = Workbook() # 获取第一个工作表 worksheet = wb.active # 设置单元格的值 cell_A1 = worksheet.cell(row=1, column=1, value="This is a long text that will wrap") # 创建一个 NamedStyle 对象 normal_style = NamedStyle(name="CustomStyle", font=Font(), # 字体样式 fill=PatternFill(), # 填充样式 border=Border(), # 边框样式 alignment=Alignment(), # 对齐样式 number_format=None, # 数字格式 protection=Protection(), # 保护设置 builtinId=None, # 内置样式 ID hidden=False, xfId=None) # 将样式应用于单元格 A1 cell_A1.style = normal_style # 保存工作簿到指定的文件名 wb.save("execl_test.xlsx") # 关闭工作簿 wb.close()

参考文档

https://openpyxl.readthedocs.io/en/stable/styles.html#/ 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3